﻿using System.ComponentModel.DataAnnotations;

namespace Robotec.NET.Application;

    /// <summary>
    /// 页面统一配置基础输入参数
    /// </summary>
    public class SysPageOptionConfigBaseInput
    {
        /// <summary>
        /// 表格高度
        /// </summary>
        public virtual string? height { get; set; }
        
        /// <summary>
        /// 搜索菜单栏的栅格宽度
        /// </summary>
        public virtual int? searchMenuSpan { get; set; }
        
        /// <summary>
        /// 列表行操作栏宽度
        /// </summary>
        public virtual int? menuWidth { get; set; }
        
        /// <summary>
        /// 搜索框长度
        /// </summary>
        public virtual int? searchSpan { get; set; }
        
        /// <summary>
        /// 列宽
        /// </summary>
        public virtual int? labelWidth { get; set; }
        
        /// <summary>
        /// 搜索按钮
        /// </summary>
        public virtual bool? searchIcon { get; set; }
        
        /// <summary>
        /// 打印按钮
        /// </summary>
        public virtual bool? printBtn { get; set; }
        
        /// <summary>
        /// 导出按钮
        /// </summary>
        public virtual bool? excelBtn { get; set; }
        
        /// <summary>
        /// 保存按钮
        /// </summary>
        public virtual bool? saveCustomBtn { get; set; }
        
        /// <summary>
        /// 编辑按钮
        /// </summary>
        public virtual bool? editCustomBtn { get; set; }
        
        /// <summary>
        /// 删除按钮
        /// </summary>
        public virtual bool? delCustomBtn { get; set; }
        
        /// <summary>
        /// 查看按钮
        /// </summary>
        public virtual bool? viewBtn { get; set; }
        
        /// <summary>
        /// 新增按钮
        /// </summary>
        public virtual bool? addCustomBtn { get; set; }
        
        /// <summary>
        /// 数据为空的提示
        /// </summary>
        public virtual string? emptyText { get; set; }
        
        /// <summary>
        /// 编辑按钮描述
        /// </summary>
        public virtual string? editCustomText { get; set; }
        
        /// <summary>
        /// 保存按钮描述
        /// </summary>
        public virtual string? saveCustomText { get; set; }
        
        /// <summary>
        /// 新增按钮描述
        /// </summary>
        public virtual string? addCustomText { get; set; }
        
        /// <summary>
        /// 删除按钮描述
        /// </summary>
        public virtual string? delCustomText { get; set; }
        
        /// <summary>
        /// 列表行操作栏显示
        /// </summary>
        public virtual bool? menu { get; set; }
        
        /// <summary>
        /// 顶部过滤按钮
        /// </summary>
        public virtual bool? filterBtn { get; set; }
        
        /// <summary>
        /// 列表边框
        /// </summary>
        public virtual bool? border { get; set; }
        
        /// <summary>
        /// 勾选框
        /// </summary>
        public virtual bool? selection { get; set; }
        
        /// <summary>
        /// 展开行
        /// </summary>
        public virtual bool? expand { get; set; }
        
        /// <summary>
        /// 列表多选
        /// </summary>
        public virtual bool? tableMultiple { get; set; }
        
        /// <summary>
        /// 保存按钮/取消按钮
        /// </summary>
        public virtual bool? cellBtn { get; set; }
        
        /// <summary>
        /// 行拖拽
        /// </summary>
        public virtual bool? rowSort { get; set; }
        
        /// <summary>
        /// 新增按钮图标
        /// </summary>
        public virtual string? addCustomIcon { get; set; }
        
        /// <summary>
        /// 配置按钮
        /// </summary>
        public virtual bool? settingBtn { get; set; }
        
        /// <summary>
        /// 删除按钮图标
        /// </summary>
        public virtual string? delCustomIcon { get; set; }
        
        /// <summary>
        /// 列表主键
        /// </summary>
        public virtual string? rowKey { get; set; }
        
        /// <summary>
        /// 翻页勾选/保留之前的勾选
        /// </summary>
        public virtual bool? reserveSelection { get; set; }
        
        /// <summary>
        /// 表格弹窗是否可以通过点击modal关闭
        /// </summary>
        public virtual bool? dialogClickModal { get; set; }
        
     [SugarColumn(IsJson =true)]
     public virtual object defaultSort { get; set; } 
     
        /// <summary>
        /// 弹出框拖拽
        /// </summary>
        public virtual bool? dialogDrag { get; set; }
        
        /// <summary>
        /// 弹出框样式
        /// </summary>
        public virtual string? dialogDirection { get; set; }
        
        /// <summary>
        /// 弹出框样式类型
        /// </summary>
        public virtual string? dialogType { get; set; }
        
        /// <summary>
        /// 编辑按钮图标
        /// </summary>
        public virtual string? editCustomIcon { get; set; }
        
        /// <summary>
        /// 保存按钮图标
        /// </summary>
        public virtual string? saveCustomIcon { get; set; }
        
        /// <summary>
        /// 列表拖拽
        /// </summary>
        public virtual bool? sortable { get; set; }
        
        /// <summary>
        /// 索引名称
        /// </summary>
        public virtual string? indexLabel { get; set; }
        
        /// <summary>
        /// 弹框宽度
        /// </summary>
        public virtual string? dialogWidth { get; set; }
        
        /// <summary>
        /// 表格高度差
        /// </summary>
        public virtual int? calcHeight { get; set; }
        
        /// <summary>
        /// 表单栏间距
        /// </summary>
        public virtual int? gutter { get; set; }
        
        /// <summary>
        /// 首次加载是否显示搜索
        /// </summary>
        public virtual bool? searchShow { get; set; }
        
        /// <summary>
        /// 表头对其
        /// </summary>
        public virtual string? headerAlign { get; set; }
        
        /// <summary>
        /// 内容对其
        /// </summary>
        public virtual string? align { get; set; }
        
        /// <summary>
        /// 展开树
        /// </summary>
        public virtual bool? tree { get; set; }
        
        /// <summary>
        /// 最多展开层
        /// </summary>
        public virtual int? expandLevel { get; set; }
        
        /// <summary>
        /// 配置代码
        /// </summary>
        public virtual string? configCode { get; set; }
        
        /// <summary>
        /// 序号
        /// </summary>
        public virtual bool? index { get; set; }
        
        /// <summary>
        /// 路由路径
        /// </summary>
        public virtual string? configPath { get; set; }
        
        /// <summary>
        /// 配置名称
        /// </summary>
        public virtual string? configName { get; set; }
        
    }

    /// <summary>
    /// 页面统一配置分页查询输入参数
    /// </summary>
    public class SysPageOptionConfigInput : BasePageInput
    {
        /// <summary>
        /// 关键字查询
        /// </summary>
        public string SearchKey { get; set; }

            /// <summary>
            /// 配置代码
            /// </summary>
            public string? configCode { get; set; }
            
            /// <summary>
            /// 路由路径
            /// </summary>
            public string? configPath { get; set; }
            
            /// <summary>
            /// 配置名称
            /// </summary>
            public string? configName { get; set; }
            
    }

    /// <summary>
    /// 页面统一配置增加输入参数
    /// </summary>
    public class AddSysPageOptionConfigInput : SysPageOptionConfigBaseInput
    {
    }

    /// <summary>
    /// 页面统一配置删除输入参数
    /// </summary>
    public class DeleteSysPageOptionConfigInput : BaseIdInput
    {
    }

    /// <summary>
    /// 页面统一配置更新输入参数
    /// </summary>
    public class UpdateSysPageOptionConfigInput : SysPageOptionConfigBaseInput
    {
        /// <summary>
        /// Id
        /// </summary>
        [Required(ErrorMessage = "Id不能为空")]
        public long? Id { get; set; }
        
    }

    /// <summary>
    /// 页面统一配置主键查询输入参数
    /// </summary>
    public class QueryByIdSysPageOptionConfigInput : DeleteSysPageOptionConfigInput
    {

    }
